sizerequest: Add more assertions for baselines
authorTimm Bäder <mail@baedert.org>
Tue, 4 Jul 2017 09:35:06 +0000 (11:35 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:15 +0000 (21:27 -0400)
min baselines must be <= natural baselines and both must lie inside the
content size of the widget.

gtk/gtksizerequest.c

index e1baaf1e738313ed2b63c9cc8e20739bba9367ff..0b1564edebf414b1a84ae70cbc769e4e20c8c876 100644 (file)
@@ -305,6 +305,18 @@ gtk_widget_query_size_for_orientation (GtkWidget        *widget,
              min_baseline = -1;
              nat_baseline = -1;
            }
+          else if (min_baseline > reported_min_size ||
+                   nat_baseline > reported_nat_size ||
+                   min_baseline < 0 ||
+                   nat_baseline < 0)
+            {
+              g_warning ("%s %p reported baselines of minimum %d and natural %d, but sizes of "
+                         "minimum %d and natural %d. Baselines must be inside the widget size.",
+                         G_OBJECT_TYPE_NAME (widget), widget, min_baseline, nat_baseline,
+                         reported_min_size, reported_nat_size);
+              min_baseline = -1;
+              nat_baseline = -1;
+            }
          else
             {
               if (css_min_size > reported_min_size)